package so.sao.shop.supplier.pojo.input;

import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * Created by acer on 2017/8/15.
 */
public class PayInput {
    /**
     * 订单ID(付款后合并的订单编号)
     */
    @NotEmpty(message = "订单ID不能为空")
    private String orderId;
    /**
     * 订单实付金额
     */
    @DecimalMin("0")
    @NotNull(message = "付款金额不能为空")
    private BigDecimal orderPrice;
    /**
     * 订单支付流水号
     */
    @NotEmpty(message = "支付流水号不能为空")
    private String orderPaymentNum;
    /**
     * 支付方式（1、支付宝；2、微信）
     */
    @NotNull(message = "支付方式不能为空")
    private Integer orderPaymentMethod;

    /**
     * 支付回调加密码
     */
    @NotEmpty(message = "支付回调加密码不能为空")
    private String sign;
    /**
     * 交易状态(WAIT_BUYER_PAY交易创建，等待买家付款;
     * TRADE_CLOSED 未付款交易超时关闭，或支付完成后全额退款;
     * TRADE_SUCCESS 交易支付成功;
     * TRADE_FINISHED 交易结束，不可退款)
     */
    private String tradeStatus;
    /**
     * 商家实收金额
     */
    private BigDecimal receiptAmount;
    /**
     * 用户在交易中支付的金额
     */
    private BigDecimal buyerPayAmount;
    /**
     * 订单标题
     */
    private String subject;
    /**
     * 支付创建的时间
     */
    private String gmtCreate;
    /**
     * 支付完成时间
     */
    private String gmtPayment;
    /**
     * 支付交易关闭时间
     */
    private String gmtClose;
    /**
     * 支付渠道
     */
    private String fundBillList;

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public BigDecimal getOrderPrice() {
        return orderPrice;
    }

    public void setOrderPrice(BigDecimal orderPrice) {
        this.orderPrice = orderPrice;
    }

    public String getOrderPaymentNum() {
        return orderPaymentNum;
    }

    public void setOrderPaymentNum(String orderPaymentNum) {
        this.orderPaymentNum = orderPaymentNum;
    }

    public Integer getOrderPaymentMethod() {
        return orderPaymentMethod;
    }

    public void setOrderPaymentMethod(Integer orderPaymentMethod) {
        this.orderPaymentMethod = orderPaymentMethod;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getTradeStatus() {
        return tradeStatus;
    }

    public void setTradeStatus(String tradeStatus) {
        this.tradeStatus = tradeStatus;
    }

    public BigDecimal getReceiptAmount() {
        return receiptAmount;
    }

    public void setReceiptAmount(BigDecimal receiptAmount) {
        this.receiptAmount = receiptAmount;
    }

    public BigDecimal getBuyerPayAmount() {
        return buyerPayAmount;
    }

    public void setBuyerPayAmount(BigDecimal buyerPayAmount) {
        this.buyerPayAmount = buyerPayAmount;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(String gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public String getGmtPayment() {
        return gmtPayment;
    }

    public void setGmtPayment(String gmtPayment) {
        this.gmtPayment = gmtPayment;
    }

    public String getGmtClose() {
        return gmtClose;
    }

    public void setGmtClose(String gmtClose) {
        this.gmtClose = gmtClose;
    }

    public String getFundBillList() {
        return fundBillList;
    }

    public void setFundBillList(String fundBillList) {
        this.fundBillList = fundBillList;
    }
}
